/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.deliccio.entitys;

import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.deliccio.connect.Entidad;

@Entity
@Table(name = "grid")
public class Grid implements  Entidad, Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idgrid", nullable = false)
    private Integer id;
    @Column(name = "codigo", length = 20)
    private String codigo;
    @Column(name = "nombre", length = 20)
    private String nombre;
    @Column(name = "descripcion", length = 20)
    private String descripcion;
    @Column(name = "codtabla")
    private Integer codtabla;
    @Column(name = "tablaName")
    private String tablaName;
    @OneToMany(mappedBy = "grid",fetch=FetchType.LAZY)
    private List<Columna> columnaList;

    public Grid() {
    }

    public Grid(Integer id,String codigo,String nombre,String descripcion,Integer codtabla,String tablaName){
		this.id=id;
		this.codigo=codigo;
		this.nombre=nombre;
		this.descripcion=descripcion;
		this.codtabla=codtabla;
		this.tablaName=tablaName;
	}

	public Grid(Integer id,String codigo,String nombre,Integer codtabla,String tablaName){
		this.id=id;
  		this.codigo=codigo;
  		this.nombre=nombre;
  		this.codtabla=codtabla;
  		this.tablaName=tablaName;
  	}

    public Grid(String codigo,String nombre,Integer codtabla){
		this.codigo=codigo;
		this.nombre=nombre;
		this.codtabla=codtabla;
	}


		
	
	public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

   

    public Integer getCodtabla(){
		return codtabla;
	}



	public void setCodtabla(Integer codtabla){
		this.codtabla=codtabla;
	}



	public String getTablaName(){
		return tablaName;
	}



	public void setTablaName(String tablaName){
		this.tablaName=tablaName;
	}



	public List<Columna> getColumnaList() {
        return columnaList;
    }

    public void setColumnaList(List<Columna> columnaList) {
        this.columnaList = columnaList;
    }



	public Integer getId(){
		return id;
	}



	public void setId(Integer id){
		this.id=id;
	}


	  @SuppressWarnings("rawtypes")
		@Override
		public String toString() {
			String toString = "[";
			@SuppressWarnings("unused")
			String campo,iscampo = "";
			try {
				Class clase = this.getClass();
				Method[] metodos = clase.getDeclaredMethods();
				for (Method met:metodos) {					
					if (met.getName().indexOf("get") >= 0) {
						toString += met.getName()+"="+met.invoke(this, null)+" - ";
					}
				}								
				toString+="]";
			} catch (Exception e) {			
				System.out.println(e);
			}
			return toString;
		}

}
